#include "train.h"

//用栈来写
//class Solution {
//public:
//    bool isValid(string s) {
//        int n = s.size();
//        if (n % 2 == 1)
//            return false;
//        stack<char> ch;
//        for (int i = 0; i < n; i++) {
//            if (s[i] == '(' || s[i] == '[' || s[i] == '{')   ch.push(s[i]);
//            else
//            {
//                if (ch.empty()) return false;
//                if (s[i] == ')' && ch.top() != '(')return false;
//                if (s[i] == ']' && ch.top() != '[')return false;
//                if (s[i] == '}' && ch.top() != '{')return false;
//
//                ch.pop();
//            }
//        }
//        return ch.empty();
//    }
//};



//不用栈的情况 假如只有一种括号

bool isValid(string s)
{
	int32_t lnum = 0, rnum = 0;
	int32_t len = s.size();
	for (int i = 0; i < len; i++)
	{
		if (s[i] == '(') lnum++;
		if (s[i] == ')') rnum++;
		if (lnum >= rnum) continue;
		return false;
	}
	return lnum == rnum;

}


//不用rnum
bool isValid(string s)
{
	int32_t num = 0;
	int32_t len = s.size();
	for (int i = 0; i < len; i++)
	{
		if (s[i] == '(') num++;
		if (s[i] == ')') num--;
		if (num >= 0) continue;
		return false;
	}
	return num ==0;

}